package com.otv.alojamiento.dao;

import java.util.List;
import com.otv.model.Alojamiento;
import org.hibernate.SessionFactory;




/**
 * Class AlojamientoDAO.
 */
public class AlojamientoDAO implements IAlojamientoDAO {
	
	/** El/la session factory. */
	private SessionFactory sessionFactory;

	/**
	 * Get Hibernate Session Factory.
	 *
	 * @return SessionFactory - Hibernate Session Factory
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	/**
	 * Set Hibernate Session Factory.
	 *
	 * @param sessionFactory un(a) nuevo(a) session factory
	 */
	public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

	
	@Override
	public void addAlojamiento (Alojamiento alojamiento) {
		getSessionFactory().getCurrentSession().save(alojamiento);
	}


	@Override
	public void updateAlojamiento (Alojamiento alojamiento) {
		getSessionFactory().getCurrentSession().update(alojamiento);
	}


	@Override
	public void deleteAlojamiento (Alojamiento alojamiento) {
		getSessionFactory().getCurrentSession().delete(alojamiento);
	}


	@Override
	public Alojamiento getAlojamientoById(int id) {
		return (Alojamiento) getSessionFactory().getCurrentSession().createQuery("from Alojamiento where id=?").setParameter(0,id).list().get(0);
	}


	@Override
	public List<Alojamiento> getAlojamientos() {
		return getSessionFactory().getCurrentSession().createQuery("from Alojamiento").list();
	}

}
